package day03;

import java.util.Spliterator;

//运算符的演示
public class OperDemo {
    public static void main(String[] args) {


        /*
        //条件运算符.也叫三目运算符
        //语法:boolean表达式? 结果1 : 结果2;
        //结果1,2必须是一个值
        //如果表达式的值为false,就执行结果2,如果结果为true为结果1
        int num=1;
        int flag=num>0?1:-1;
        System.out.println(flag);//1

        int a=8,b=5;
        int max=a>b?a:b;
        System.out.println("max="+max);

         */


        /*
        //字符串连接运算符:+
        //字符串连接运算符是进行字符串连接的运算符
        //1.若两边为数字,则做加法运算
        //2.若两边出现字符串,则字符串连接
        //3.任何类型的类型要字符串类型拼接,结果都玩字符串类型
        //字符串:一串字符,放在双引号中,长度没有限制
        int age=38;
        System.out.println("age");//age
        System.out.println(age);//38
        System.out.println("age="+age);//age=38
        System.out.println("我今年"+age+"岁");//我今年38岁了

        String name="lll";
        System.out.println("大家好我叫"+name+",今年"+age+"岁了");//大家好我叫lll

        System.out.println(10+20+""+30);//"3030"变成String类型
        System.out.println(10+20+30+"");//"30"变成String类型
        System.out.println(""+10+20+30);//"102030"变成string类型

         */

        /*
        //赋值运算符:=,+=,-=,*=,/=,%=
        //扩展赋值符本身自带强转功能
        int a=5;
        a +=10;//相当于a=int(a+10)
        System.out.println(a);//15
        a *=2;//相当于a=(int)(a*2)
        System.out.println(a);//30
        a /=6;//相当于a=(int)(a/6)
        System.out.println(a);//5

        short b=1;
        //b=b+1;//因为1是int类型,int类型与short类型计算,结果会变成int类型,注意导致左右类型不一致,所以编译错误
        b+=2;//因为扩展赋值符会发生强转,相当于b=(short)(b+2)

         */

        //逻辑运算符
        //逻辑运算符是进行逻辑运算的运算符
        //常常由于多条件运算
        //&&逻辑与         ||逻辑或       !逻辑非
        //什么什么之间的,用逻辑与&&
        //&&逻辑与(并且),两边都为真则为真,见false为false
        //||逻辑或(或者),两边都为假则为假,见true为true
        //!逻辑非,非真则假,非假则真
        //&&:短路与(并且)当第一个条件为false时,则发生短路(后面的运算不执行了)
        //||:短路或(或者)当第一个条件为true时,则发生短路(后面的运算不执行了)

        /*
        //&&:短路与
        int a=5,b=10,c=5;
        boolean b3=a>b && c++>2;
        System.out.println(b3);//false,发生短路,后面的&& c++>2不运行
        System.out.println(c);//5 ,因为发生了短路,后面的运算不进行

         */
        /*
        //短路或:||
        int a=5,b=10,c=5;
        boolean b3=a<b || c++>2;
        System.out.println(b3);//teur ,发生了短路,逻辑与见true为true,所有后面的|| c++>2不运行
        System.out.println(c);//5 .因为发生了短路

         */


        /*
        //!逻辑非,非真则假,非假则真
        int a=5,b=10,c=5;
        boolean b2=!(a<b);
        System.out.println(b2);//!true=false
        System.out.println(!(a>b));//!false=true

         */

        /*
        //逻辑或:||
        int a=5,b=10,c=5;
        System.out.println(b>=a || b<c);//t 逻辑或见true为true
        System.out.println(b<=c || b>a);//t 逻辑或见true为true
        System.out.println(b!=c || a<b);//t 逻辑或见true为true
        System.out.println(a==b || b<c);//f 逻辑或两边都为假时,结果为假
        int score=90;
        System.out.println(score<0 || score>100);//f   100>90>0

         */


        /*
        //逻辑与:&&
        int a=5,b=10,c=5;
        boolean b1= b>=a && b<c;
        System.out.println(b1);//f   &&见false为false
        System.out.println(b<=c && b>a);//f &&见false为false
        System.out.println(a==b && c>b);//f &&见false为false
        System.out.println(b!=c && a<b);//t &&中全真为真

        int age=39;
        System.out.println(age>=18 && age<=50);//true &&中全真为真
        int sorc=89;
        System.out.println(sorc>=0 && sorc<=100);//true &&中全真为真

         */

        /*
        //关系运算符
        //<,>,=<,=>,==,!=
        //关系运算符的结果为Boolean型,关系成立时为true,不成立时为false
        int a=5,b=10,c=5;
        boolean a1=a>6;
        System.out.println(a1);//f
        System.out.println(c<b);//t
        System.out.println(a>=c);//t
        System.out.println(a<=b);//t
        System.out.println(a==c);//t
        System.out.println(a!=c);//f

        System.out.println(a%2==0);//f   1
        System.out.println(a+a>b);//f
        System.out.println(a++>5);//f  a=6
        System.out.println(a++>5);//f  a=7
        System.out.println(a);
         */

        //算术运算符:+,-,*,/,%,++,--
        //%:取余,余数为0即为整数
        //++/--:自增1/自减1
        /*
        int a=5;
        int b=5;
        a--;//相当于a=a-1
        --b;//相当于b=b-1
        System.out.println(a);//4
        System.out.println(b);//4
        //a--的值为a,--a的值为a-1
        int a1=5;
        int b1=5;
        int c=a1--;
        int d=--b1;
        System.out.println(a1);//4
        System.out.println(b1);//4
        System.out.println(c);//5
        System.out.println(d);//4
         */

        /*
        算术运算符
        int a1=5;
        int b1=5;
        a1++;//相当于a1+1
        ++b1;//相当于b1+1
        System.out.println(a1);//6
        System.out.println(b1);//6

        int a=5;
        int b=5;
        int c=a++;//将a++的值赋值给c,同时a自增1变成6
        int d=++b;//将++b的值赋值个d,同时b自增变成6
        System.out.println(a);//6
        System.out.println(b);//6
        System.out.println(c);//5
        System.out.println(d);//6
         */
        /*
        运算符的分类:
        算术运算符
        关系运算符
        逻辑运算符
        赋值运算符
        字符串运算符
        条件运算符
         */
    }
}
